System, apparatus and method for preserving data

ABSTRACT

A method for preserving data on a portable apparatus having a limited power source is disclosed comprising: detecting that power available in the power source has reached a threshold value; and saving data stored in a volatile memory on the portable apparatus to a server.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] This invention relates generally to the field of network dataservices. More particularly, the invention relates to an apparatus andmethod for preserving data on an apparatus having a limited powersource.

[0003] 2. Description of the Related Art

[0004] “Portals” are World Wide Web (“WWW”) sites which help usersmanage and navigate through vast amounts of information stored on theInternet. Some well known Internet portals include “Yahoo!®,”AltaVista®, and Excite®. Portals typically provide search features whichallow users to search for particular types of content by enteringkeywords. In response to the keyword search request, the portal returnslinks to relevant Internet sites and/or relevant content stored directlyon the portal. For example, if a user enters the keyword “snowboarding,”the portal may return a list of hyperlinks to Internet sites related tosnowboarding as well as internal portal categories related tosnowboarding (e.g., “Recreation>Sports>Snowboarding”).

[0005] In addition to the keyword search and content managementcapabilities described above, portals may also provide users with avariety of network applications such as, for example, email, electronicscheduling and contact management, chat groups, newsgroups, personalfinancing, and instant messaging, to name just a few.

[0006] Many portals also provide a registration feature which allowsusers to customize the types of information and/or applications whichwill be immediately accessible to the user on the portal. For example,the user may configure the portal to automatically retrieve and displayinformation specified by the user such as, for example, the value of theuser's stock portfolio, the weather forecast in the user's geographiclocation, an indication of any unread email messages, the user'sappointments for the day, the local news headlines for the day, and/orthe television listings for the user's favorite channels that evening.

[0007] When the user visits the portal (e.g., via a client computer),he/she may be presented with a single Web page that contains all of theforegoing information, automatically collected and transmitted by theportal. Typically, a portal will transmit a unique Web page andassociated data to the user in this manner only after receiving properauthentication (e.g., user ID and password).

SUMMARY

[0008] A method for preserving data on a portable apparatus having alimited power source is disclosed comprising: detecting that poweravailable in the power source has reached a threshold value; and savingdata stored in a volatile memory on the portable apparatus to a server.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009] A better understanding of the present invention can be obtainedfrom the following detailed description in conjunction with thefollowing drawings, in which:

[0010]FIG. 1 illustrates an exemplary network architecture used toimplement elements of the present invention.

[0011]FIG. 2 illustrates another exemplary network architecture used toimplement elements of the present invention.

[0012]FIG. 3 illustrates a radio signal including its sub-carrier in thefrequency domain.

[0013]FIG. 4 illustrates an external view of a portal device accordingto one embodiment of the invention.

[0014]FIG. 5 illustrates an internal view of a portal device accordingto one embodiment of the invention.

[0015]FIG. 6 illustrates a process according to one embodiment of theinvention wherein a user is logged in to a portal server.

[0016]FIG. 7 illustrates a visual programming interface according to oneembodiment of the invention.

[0017]FIG. 8 illustrates portal device communication according to oneembodiment of the invention.

[0018]FIG. 9 illustrates one embodiment of a portal device communicatingwith a portal server.

[0019]FIG. 10 illustrates one embodiment of the invention which employsa distinctive vibrate feature.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0020] In the following description, for the purposes of explanation,numerous specific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however, toone skilled in the art that the present invention may be practicedwithout some of these specific details. In other instances, well-knownstructures and devices are shown in block diagram form to avoidobscuring the underlying principles of the present invention.

An Exemplary Network Architecture

[0021] Elements of the present invention may be included within aclient-server based architecture 100 such as that illustrated in FIG. 1.According to the embodiment depicted in FIG. 1, a portal server 110communicates with clients 140 and other network servers 130 over anetwork 120 (e.g., the Internet). The network 120 over which the clients140 and servers 110, 130 transmit and receive data may be comprised ofany combination of private (e.g., leased) and/or public communicationchannels. These may include, for example, Digital Signal (“DS”) channels(e.g., DS-3/T-3, DS-1/T1), Synchronous Optical Network (“SONET”)channels (e.g., OC-3/STS-3), Integrated Services Digital Network(“ISDN”) channels, Digital Subscriber Line (“DSL”) channels, cable modemchannels and a variety of wireless communication channels includingsatellite broadcast and cellular channels.

[0022] In addition, various networking protocols may be used to supportcommunication across the network 120 including, for example, theAsynchronous Transfer Mode (“ATM”), Ethernet, and Token Ring (at thedata-link level); as well as Transmission Control Protocol/InternetProtocol (“TCP/IP”), Internetwork Packet Exchange (“IPX”), AppleTalk andDECnet (at the network/transport level). It should be noted, however,that the principles of the invention are not limited to any particularcommunication channel or protocol.

[0023] The portal server 110 in one embodiment includes a user databasefor storing various types of user configuration and account data. Usersmay register and login to the portal server 110 from a client 140 byspecifying a user ID and/or password. According to one embodiment, auser connects to the servers 110, 130 via a browser application such asNetscape Navigator™ or Microsoft Internet Explorer™ which communicatesvia the Hypertext Transfer Protocol (hereinafter “HTTP”).

[0024] In one embodiment, users may configure the portal server 110 toretrieve and manage specific types of information. For example, a usermay configure the portal server 110 to retrieve up-to-date stock quotesfor a specified set of stocks (e.g., reflecting the user's portfolio),to collect the weather forecast for the user's hometown, and/or toretrieve recent articles relating to a particular sports franchise. Theportal server will then retrieve the specified information from otherservers (e.g., server 130) on behalf of the user.

[0025] In addition to information retrieval and management, in oneembodiment the portal server 110 also provides application services suchas email, online scheduling (e.g., appointments, to-do lists, etc),instant messaging, contact management, word processing and a variety ofother online services. Users may access these services by logging in tothe portal server 110 with a valid user ID and password. In oneembodiment, the portal server 110 generates a unique, personalized Webpage for each user containing links to all, or a subset of, theinformation and/or services subscribed to by the user.

Embodiments of the Invention

[0026] In one embodiment, a portal device 150 stores and processesuser-specified information and/or programs as well as non-user-specifiedinformation/programs (e.g., targeted advertisements based on the user'sprofile). The information/programs may be transmitted to the portaldevice 150 through the client 140, and/or directly via wirelessbroadcast (as illustrated in FIG. 2 and described in detail below).Thus, the portal device 150 in this embodiment is a removable extensionof the portal server 110, storing a subset of the information andservices maintained by the portal server 110 on behalf of the user. Forexample, a user may configure the portal server 110 to periodicallydownload the user's to-do list (or other scheduling data) to the portaldevice (e.g., every morning, every two hours, every time the userconnects the portal device to the client 140, etc). When the user leavesthe office, he/she can simply take the portal device with him/her andview his/her schedule throughout the day.

[0027] The timing of the information/program download may depend on theparticular embodiment of the portal device 150. For example, if awireless embodiment is used (described below) downloads may occur at anytime when the portal device 150 is within wireless transmission range,whereas if a non-wireless embodiment is used, downloads may be limitedto periods of time when the portal device 150 is connected to the portalserver 110.

[0028] In one embodiment, the user may customize the portal device 150preferences and content which will be downloaded to the portal device150 from the portal server 110. This may be accomplished, for example,by selecting certain preferences/content from a portal server 110 Webpage (e.g., by using an online programming interface as describedbelow). For example, the user may choose to have each day's to-do listdownloaded to his portal device 150 and may also program the device 150(e.g., via the portal server 110) to continually display the nextscheduled event for the day. Various other user interface andcontent-based data may be transmitted to the portal device 150 from theportal server 110 while still complying with the underlying principlesof the invention.

Client Link

[0029] As illustrated in FIG. 1, one embodiment of the portal device 150communicates to the portal server 110 via a communication link 160 withthe client 140. The communication link may be established via a physicalI/O connection with the client 140 such as a Universal Serial Bus(“USB”) interface or a communication (“serial”) interface.Alternatively, the communication link 160 may be a wireless link such asan Infrared I/O channel or a radio frequency (“RF”) I/O channel.

[0030] In one particular embodiment, the client link 160 is formed usinga capacitively-coupled communication channel. As is known in the art, acapacitor is any dielectric sandwiched between two conductive elements.In this embodiment, one of the two conductive elements is located withinthe portal device 150 and the second of the two conductive elements islocated external to the portal device 150 and is communicatively coupledto an I/O port of the client 140. For example, in one embodiment, thesecond conductive element may be disposed within user's mouse pad.According to this embodiment, the user may simply place the portaldevice on the mouse pad to set up the capacitive communication link 160with the client 140. It should be noted, however, that various otherclient links 160 may be employed while still complying with theunderlying principles of the invention.

Direct Radio Broadcast

[0031] In one embodiment, illustrated in FIG. 2, data and/or programsare transmitted to the portal device 150 from the portal server 110 overan RF link 220. In this embodiment, the organization maintaining theportal server 110 and/or implementing other features of the system andmethod described herein (hereinafter the “portal organization” or “PO”),may lease a portion of the RF transmission bandwidth from one or moreradio stations 210. It should be noted, however, that various RFtransmission techniques may be used without departing from theunderlying principles of the invention.

[0032] Referring to FIG. 3, in one particular embodiment, the PO willuse the radio station's sub-carrier frequency band 320 to transmit dataand/or programs to the portal device 150. As it is known in the art,radio stations are licensed a sub-carrier frequency block 320 along withthe audio carrier frequency block 310. Although some radio stations usethe sub-carrier frequency block 320 (e.g., for foreign-languagebroadcast), most do not. As such, the present embodiment provides amechanism for transmitting data over an infrequently-used wirelesstransmission channel.

[0033] To further conserve bandwidth within the sub-carrier frequencyblock 320, in one embodiment, the data transmitted over the RF link 220is not addressed to any one specific portal device. Rather, in thisembodiment, the data is simply transmitted (e.g., with a tag thatidentifies the data) and is sensed by any portal device(s) 150 listeningwithin the sub-carrier block 320. This type of addressing will bereferred to herein as “data addressable” addressing (in contrast to“device addressable addressing in which a device address is associatedwith the transmitted data). The individual portal devices 150 that sensethe various data transmissions may ignore them or may take some otherspecified action (e.g., store and display the transmitted data),depending on how the devices 150 are configured. For example, a portaldevice 150 may be configured by a user to track stock quotes for stockswithin his/her portfolio and to ignore all other stock quotes.Similarly, the user may configure the portal device 150 to listen forlocal weather reports, local news headlines, and/or any otherinformation which may be accessed by the user directly at the portalserver 110.

[0034] In one embodiment, the data broadcast in a particulargeographical region will be selected based on the number of users inthat region who have registered on the portal server 110 and/or thetypes of data requested by users in the region. For example, if no usersin the region have configured the portal server 110 to gather aparticular stock quote, then the portal server 110 will not transmitthat stock quote over the RF link 220 in that region. Similarly, theportal server 110 may be configured to only transmit local data such asweather and local news in the local broadcast region to which theweather and news pertains (i.e., where it will most likely berequested). Broadcasting data selectively in this manner will furtherimprove bandwidth over the RF link 220 (i.e., by reducing unnecessarydata transmissions).

[0035] In one embodiment, portal devices 150 may be addressed directly(e.g., by including the device's serial number or other ID code in anaddress field of the data transmission). This embodiment may be providedby the PO to users as a “premium” service, under which the user pays anadditional fee to receive personally-addressed information over thesub-carrier 360 (e.g., email messages, daily schedules, etc), as well asthe more general information described above. Users of this embodimentmay be charged on a subscription basis and/or on a per-use basis,depending on the embodiment. Of course, other pricing models may beemployed while still complying with the underlying concept. The PO mayalso employ this embodiment under certain emergency situations (e.g.,where it is crucial that a particular user receive a data transmissionimmediately).

Embodiments of the Portal Device

[0036]FIG. 4 illustrates an external view of one embodiment of a portaldevice 420 which may be used as a key chain. As shown, this embodimentincludes a key chain ring 410 for securing a set of keys (or otherpersonal effects) to the device 420. Also illustrated is a display 430for displaying various types of portal data. In one embodiment thedisplay is a Liquid Crystal Display (“LCD”). Of course, other displaytechnologies may be implemented while still complying with theunderlying principles of the invention (e.g., Light Emitting Diode(“LED”) displays). Also included is a set of control buttons 440 and 441for selecting menu items and/or jumping back and forth between storedportal data and a control knob 450 for scrolling between menu itemsand/or data. In one embodiment, the control knob 450 rotates on an axiswhich is substantially perpendicular to the plane of the display 430.

[0037] Additional attachable embodiments of the portal device 150include a necklace configuration, a pocket watch configuration, and asports configuration (e.g., wherein the portal device is strapped firmlyaround a user's arm). In the latter configuration, the shell of theportal device may be comprised of a waterproof material to avoid waterdamage to the internal components of the device.

[0038] As illustrated in FIG. 5, one embodiment of the portal device 150is comprised generally of a microcontroller 505, an external memory 550,a display controller 575, and a battery 560. The external memory 550 maybe used to store programs and/or portal data 565 transmitted to theportal device 150 from the portal server 110 (e.g., via client 140and/or radio station 210). In one embodiment, the external memory 550 isnon-volatile memory (e.g., an electrically erasable programmable readonly memory (“EEPROM”); a programmable read only memory (“PROM”), etc).Alternatively, the memory 550 may be a volatile memory (e.g., randomaccess memory or “RAM”) but the data stored therein may be continuallymaintained via the battery 560. The battery 560 in one embodiment is acoin cell battery (e.g., of the same type used in portable electronicdevices such as calculators and watches). In one embodiment, when thebattery power decreases below a threshold level, the portal device 150will notify the user and/or the portal server 110. The portal server 110in one embodiment will then automatically send the user a new battery.

[0039] The microcontroller 505 of one embodiment is comprised of acentral processing unit (“CPU”) 510, a read only memory (“ROM”) 570, anda scratchpad RAM 540. The ROM 570 is further comprised of an interpretermodule 520 and a toolbox module 530.

[0040] The toolbox module 530 of the ROM 570 contains a set of toolboxroutines for processing data, text and graphics on the portal device150. These routines include drawing text and graphics on the portaldevice's display 430, decompressing data transmitted from the portalserver 110, reproducing audio on the portal device 150, and performingvarious input/output and communication functions (e.g.,transmitting/receiving data over the client link 160 and/or the RF link220). A variety of additional portal device functions may be includedwithin the toolbox 530 while still complying with the underlyingprinciples of the invention.

[0041] In one embodiment, microprograms and portal data 560 aretransmitted from the portal server 110 to the external memory 550 of theportal device via a communication interface 570 under control of the CPU510. Various communication interfaces 570 may be employed withoutdeparting from the underlying principles of the invention including, forexample, a Universal Serial Bus (“USB”) interface or a serialcommunication (“serial”) interface. The microprograms in one embodimentare comprised of compact, interpreted instructions known as “bytecodes,”which are converted into native code by the interpreter module 520before being executed by the CPU 510. One of the benefits of thisconfiguration is that when the microcontroller/CPU portion of the portaldevice 150 is upgraded (e.g., to a faster and/or less expensive model),only the interpreter module 520 and toolbox 530 of the ROM needs to berewritten to interpret the currently existing bytecodes for the newmicrocontroller/CPU. In addition, this configuration allows portaldevices 150 with different CPUs to coexist and execute the samemicroprograms. Moreover, programming frequently-used routines in the ROMtoolbox module 530 reduces the size of microprograms stored in theexternal memory 550, thereby conserving memory and bandwidth over theclient link 160 and/or the RF link 220. In one embodiment, newinterpreter modules 520 and/or toolbox routines 530 may be developed toexecute the same microprograms on cellular phones, personal informationmanagers (“PIMs”), or any other device with a CPU and memory.

[0042] One embodiment of the ROM 570 may be comprised of interpretedcode as well as native code written specifically for the microcontrollerCPU 505. More particularly, some toolbox routines may be written asinterpreted code (as indicated by the arrow between the toolbox 530 andthe interpreter module 520) to conserve memory and bandwidth for thesame reasons described above with respect to microprograms. Moreover, inone embodiment, data and microprograms stored in external memory 550 maybe configured to override older versions of data/microprograms stored inthe ROM 570 (e.g., in the ROM toolbox 530).

Data Compression

[0043] As described above, microprograms and portal data may betransmitted to the portal device 150 in a compressed format. As such, inone embodiment, decompression logic is programmed into themicrocontroller ROM 570 (e.g., within the toolbox 530) and is used tointerpret and/or decompress the microprograms/data as they are received.

[0044] In one embodiment, a plurality of uncompressed data is stored inthe ROM 570, and codes identifying the uncompressed data are transmittedacross the RF link 220 and/or client link 160. For example, instead oftransmitting the entire market code for a particular stock, such as“MSFT” for Microsoft, a compressed code, e.g., “M,” may be transmittedto the portal device 150 instead. The ROM 570 in this embodiment mayinclude a lookup table (or similar decode logic) for retrieving the realmarket code “MSFT,” using the compressed code, “M.” Once the real codeis retrieved from the ROM 570, it may be displayed on the portal device150 as illustrated in FIG. 4. It should be noted, however, that theunderlying principles of the invention may be practiced using a varietyof coding schemes and/or digital compression techniques.

User Registration and Authentication

[0045] One embodiment of the invention will now be described withreference to the flowchart of FIG. 6. According to this embodiment, whena user initially connects to the portal server 110 (e.g., from client140), the portal server 110 will determine whether a portal deviceplug-in is installed on the user's Web browser (at 615). As is known inthe art, plug-ins are auxiliary programs added to Web browsers toprovide them with new levels of functionality. One embodiment of thepresent invention uses a plug-in to coordinate communication between theportal server 110, the client 140, and the portal device 150. Inaddition, the plug-in may convert and/or compress “standard” portalprograms/data (e.g., programs/data meant to be executed on the client140) into microprograms/data that the portal device can properlyinterpret, as described herein. If the plug-in is not installed, theportal server 110 may automatically transmit and install it on theclient 140 (at 625).

[0046] At 630, the portal server 110 (e.g., via the plug-in) determineswhether the portal device is currently attached to the client 140. Ifthe device 150 is attached then, in one embodiment, the portal server110 will automatically log the user in. The portal server 110 mayautomatically authenticate the portal device 150 via a serial numberand/or a user authentication key embedded/stored in the device 150. Oncethe user is logged in to the portal server, he/she can then transmitdata to and from the portal device 150 as described herein.

[0047] If the device 150 is not attached, however, then the portalserver 110 may implement a standard user name/password login procedureand/or may register the user (at 640). During the registration processthe user may be asked to respond to a series of questions relating tohis/her background (e.g., hobbies, education, career, etc). The portalserver 110 may use this information to personalize the content collectedand provided to the user and/or to target ads to the user based on theuser's preferences. In addition, at this point the user may be providedwith an opportunity to configure the portal server 110 to gather andmanage specific information on behalf of the user (e.g., particularstocks, sports scores, news, etc) and/or to provide the user with accessto certain online applications (e.g., email, electronic scheduling, etc)as described herein.

Online Programming Interface

[0048] In one embodiment, registered users are provided with an onlinevisual programming interface such as that illustrated in FIG. 7. Underthis embodiment users may construct their own microprograms to beexecuted on the portal device 150 and/or the client 140. For example, auser may define a programming block as a hyperlink which points to aparticular piece of data or series of data (e.g., a current stock quotefor AT&T, the San Francisco weather forecast, etc) and may also indicatehow frequently the data associated with the hyperlink is to be updated.Multiple such blocks may be chained together to create a continualsequence of information to be displayed on the portal device 150 or theclient 140. The particular programs generated by users may depend onwhether a wireless portal device 150 is being used. For example, amicroprogram designed to download up-to-date stock quotes may require awireless connection to the portal server 110 to be effective.

[0049] As illustrated in FIG. 7, users may also program animation and/orsound into the portal device 150. For example, block 710 points to aparticular image file (e.g., a bitmap file) and block 715 points to aparticular music file (e.g., a Musical Instrument Digital Interface or“MIDI” file). The user may cause the image to move across the display430 of the portal device 150 in a specified direction by programmingblock 720 (e.g., using X and Y coordinate data). Concurrently, the usermay program block 725 to play the music track identified in block 715.Temporal link 722 indicates that the movement of the image and theplayback of the music track are to take place simultaneously.Programming block 720 indicates that the music and image will both fadeout to end the program.

[0050] In one embodiment, standard image and/or music files stored onthe client 140 are converted to a format which the portal device caninterpret (e.g., using a conversion module which may included in theclient plug-in). For example, the melody line may be extracted from aMIDI file and transmitted to the portal device as a series of notes.Similarly, bitmap or JPEG images may be converted so that they areproperly displayed on the portal device display 430, which in oneembodiment is a black & white LCD display.

Portal Key Operations

[0051] In one embodiment, each portal device 150 includes a portal keywhich uniquely identifies the device, the user and/or particular data onthe portal server. The key may either be permanently embedded in thedevice (e.g., the key may be the serial number) or, alternatively, maybe selected manually by the user (e.g., the user's ID on the portalserver 110) or may be assigned to the device by the portal server 110.

[0052] Regardless of how the portal key is generated, as illustrated inFIG. 8, in one embodiment users may exchange keys between portaldevices. Specifically, portal device 810 is shown receiving a portal key(key no. 5331998TW) from portal device 820. In one embodiment, when theuser of portal device 810 connects to the portal server 110 afterreceiving the portal key, he/she will be provided with access toinformation and/or services associated with the portal key. For example,the user of portal key 820 may store personal and/or business-relatedinformation on the portal server 110 which he/she wants to share withthe user of portal device 810.

[0053] Several portal key applications may be implemented using thistype of portal key exchange. These include, for example, socialinvitations; “business card” exchanges (i.e., where the user of portaldevice 820 stores an online business card on portal server 110);personal photo exchanges; and/or exchanges of any other informationadapted to be stored on a computer network. It should be noted, however,that the underlying principles of the invention are not limited to anyparticular type of informational exchange.

[0054] Exchanging portal keys in the foregoing manner provides anefficient mechanism for exchanging information using a limited amount ofportal device memory because the underlying information is stored on theportal server 110, rather than the portal device 150 itself. Inaddition, when a user exchanges a key, the user is then free tocontinually update the information/services on the portal server 110 towhich the key provides access. For example, a user may exchange a keywith a prospective employer, and subsequently update his/her resume onthe portal server 110. Similarly, if the user is involved in research,he/she may exchange his/her key with colleagues and continually updatethe research data on the portal server 110.

[0055] In one embodiment, a user may set up a number of different keyson the portal server, each pointing to a different type of informationand/or service. The user can then select a particular key to transmit toa second user (e.g., using the portal device controls 440, 441, 450)depending on the information and/or service to be provided to the seconduser. For example, a user may establish a business key which points tobusiness-oriented information/services (e.g., a firm brochure) and apersonal key which points to personal information/services (e.g.,personal photos). In one embodiment, the portal device 150 will includeone standard key for generally identifying the portal device 150 to theportal server 110 and other users, and any number of user-defined“sub-keys” which can be used to exchanged more specific user data (e.g.,such as the business data and personal data described above).

[0056] Various advertising and promotional services may be implementedin accordance with the underlying principles of the invention. In oneembodiment, portal devices may be set up to broadcast keys to users at aplace of business such as a supermarket or a car dealership. A user maychoose to receive the key on his/her portal device and thereby acquireadditional information about the product/service associated with the keywhen he/she logs in to the portal server 110. Businesses may offervarious types of Internet promotions/discounts to users in this manner.Conversely, a user may choose to transmit his/her key to a portal devicelocated at a business to request that the business automatically contactthe user with additional product/service information (e.g., via email, atelephone call, etc).

[0057] In one embodiment, advertisements and/or coupons may betransmitted to the user's portal device 150. This may be accomplishedover the client link 160 and/or the RF link 220. If transmitted over theclient link 160, the ad/coupon may be programmed to trigger at astatistically effective time (one embodiment of the portal device 150includes a digital clock). For example, a Starbucks® Coffee ad may bedownloaded to the portal device 150 at a random time and may beprogrammed to trigger in the morning, before the user heads in to work.Personal information known about the user (e.g., the user's preferences,the user's daily schedule, etc) may be factored in to the timingdecision and/or the decision as to which ads to transmit to the user.The ad/coupon may also be triggered automatically at any time/date viathe RF link 220.

[0058] If a coupon is transmitted, the user may redeem the coupon in anumber of ways. In one embodiment, the user may simply show the couponcode to an employee working at the business for which the coupon isvalid. Alternatively, a portal device may be configured directly at thebusiness to automatically redeem coupons (e.g., via a coupon exchangefeature similar to the key exchange feature described above). Thebusiness' portal device may communicate with the portal server 110 tocontinually transmit and receive coupon data. In one embodiment, theuser's portal device is configured to display a bar code identifying thereceived coupon/service which may be interpreted by a bar code device atthe business to redeem the coupon/service. The underlying principles ofthe invention may be implemented using various additional advertisementand/or coupon redemption mechanisms.

[0059] In one embodiment, a coupon or advertisement may be transmittedto the user's portal device 150 from a portal device located at abusiness (in contrast to the embodiment above, where thecoupon/advertisement is transmitted by the portal server 110). In thisembodiment, the user's portal device 150 may automatically trigger theadvertisement/coupon when it is brought within range of the business'portal device. In one embodiment, the business' portal device transmitsa key to the user's portal device 150, which the user may subsequentlyuse to obtain additional information from the portal server 110 (e.g.,relating to a particular product or service). In this embodiment, thebusiness' portal device may or may not communicate directly with theportal server 110.

[0060] It should be noted that the foregoing description of portaldevices and associated methods includes various business methods. Inaddition, according to one particular business method, once a userregisters on the portal server 110, the PO will assign a portal device150 to the user free of charge (or for some nominal fee). Upon receiptof the portal device 150 (e.g., in the mail), the user will attach theportal device (e.g., via the client link 160), and register the portaldevice 150 with the portal server 110. The user may then configure themanner in which he/she will use the portal device 150 (e.g., byselecting the types of portal data/microprograms to be processed andstored in the device). In one embodiment, users will be given the optionto upgrade to a more advanced portal device 150 for a specified fee. Inone embodiment, however, the fee will be no more than the cost ofmanufacturing and shipping the device to the user.

[0061] In one embodiment, the portal device 150 is shipped to the userwith pre-configured data and/or advertisements already stored within thedevice 150. This may include, for example, the user's name and address;scheduling data for the user for the day/week on which the user willreceive the device; and/or any other data stored by the user on theportal server 110.

[0062] In one particular embodiment, the portal device 150 is configuredto display shipping information (e.g., the shipping bar code and/ordestination address) on its display 430. This shipping information maybe used by the shipping company to transport the portal device 150 tothe user. This embodiment may be shipped to the user using transparentpackaging so that the shipping data may be easily read/scanned.

Additional Embodiments

[0063] As mentioned above, the portal device 150 may communicate withthe portal server 110 using various RF communication techniques. Forexample, in one particular embodiment, the portal device 150 transmitsand receives data to/from a cellular network via the cellular digitalpacket data (“CDPD”) standard. As it is known in the art, the CDPDstandard is a digital wireless standard that is deployed as anenhancement to the existing analog cellular network. It provides apacket overlay onto the AMPS network and moves data at 19.2 Kbps overcontinuously-changing unused intervals in standard voice channels.Accordingly, this embodiment of the portal device is capable ofexploiting normally unused bandwidth on a nation-wide, analog cellularnetwork. Embodiments of the portal device may also be configured totransmit/receive data using a variety of other communication standardsincluding 2-way paging standards and third generation (“3G”) wirelessstandards (e.g., UTMS, CDMA 2000, NTT DoCoMo, . . . etc).

[0064] As described above, because certain embodiments of the portaldevice 150 are configured to process hardware-independent interpretedcode (e.g., via an interpreter module 520 such as a Java virtualmachine), applications may be ported to new hardware platforms withoutsignificant changes. In addition, as illustrated in FIG. 9, in oneembodiment, communications functionality is provided via a modularnetworking interface 916, which may be easily modified/replaced withoutaltering existing portal device applications 910 or significant portionsof the bytecode interpreter 912. For example, when changing from a CDPDnetwork to a 3G network, only the network interface component 916 of theVM interpreter 912 will need to be updated (along with any required 3Ghardware 914) to support the new 3G protocol.

[0065] As described above (and as indicated in FIG. 9), in oneembodiment, the interpreter module 912 on the portal device 150 is aJava virtual machine. As such, this embodiment of the portal device 150is capable of executing a vast library of existing hardware-independentJava applications (e.g., applets/bytecodes) 910. Moreover, as indicatedin FIG. 9, one embodiment of the portal device employs a 32-bitRISC-based microprocessor such as an ARM processor. As is known in theart, ARM processors are widely used in PDAs, cell phones and a varietyof other wireless devices. It should be noted, however, that variousother hardware and software (and/or firmware) architectures may be usedfor the portal device 150 while still complying with the underlyingprinciples of the invention.

[0066] As described above, one embodiment of the portal server 110converts standard applications and data into a format which the portaldevice 150 can properly interpret. Accordingly, as illustrated in FIG.9, this embodiment of the portal server 110 may include a contentconversion module 920 for processing portal device 150 requests forInternet content 940. More particularly, in one embodiment, the portalserver 110 acts as a proxy for the portal device 150, forwardingInternet requests 940, 941 to the appropriate Internet site 130 onbehalf of the portal device 150, receiving responses from the Internetsite 130 in a standard Internet format (e.g., Web pages with embeddedaudio/video and graphical content), and converting the standard Internetresponses 924 into a format which the portal device 150 can process(e.g., bytecodes).

[0067] For example, the conversion module 920 may include a hypertextmarkup language (“HTML”) rendering module (not shown) for interpretingHTML code and downloading any embedded content in the HTML code (e.g.,graphics, video, sound, . . . etc) to the portal server 110. Theconversion module 920 may then combine the HTML code and embeddedcontent and generate a set of bytecodes for accurately reproducing therequested content on the portal device 150. As described above, in oneembodiment, the bytecodes may be Java bytecodes/applets. However,various other types of interpreted and/or non-interpreted code may begenerated, depending on the particular type of portal device 150 beingused (e.g., one with an interpreter module or one without).

[0068] Because the portal server 110 has an intimate knowledge of thecapabilities/configuration of each portal device 150 (e.g., screen size,graphics/audio capabilities, available memory, processing power, userpreferences, . . . etc) it can reconstruct the requested Internetcontent accurately, while at the same time minimizing the bandwidthrequired to transmit the content to the device 150. For example, theconversion module 920 may perform pre-scaling and color depthadjustments to the requested content so that it will be renderedproperly within the portal device 150 display. In making thesecalculations, the conversion may factor in the memory and processingpower available on the portal device 150. In addition, the conversionmodule 920 may compress the requested content using a variety ofcompression techniques (and thereby preserve network bandwidth).

[0069] In one embodiment, the conversion module 920 will simply discardInternet content which either cannot be reproduced on the portal device150, or which the user has indicated that he/she does not want to bereproduced on the portal device. For example, a user may indicate thathe/she does not want sounds to be generated on the portal device 150 orthat he/she does not want advertisements transmitted to the portaldevice 150. The conversion module 920 will then remove any sounds oradvertisements embedded in the requested Web page (or other requestedInternet content). Because HTML rendering and other advanced processingof Internet content/data is offloaded to the portal server 110 asdescribed above, the portal device 150 can be manufactured using a lowpower microprocessor or microcontroller, thereby lowering the cost ofmanufacture and/or the energy consumed by the device 150.

[0070] In one embodiment, when a particular Web page or other Internetobject has been converted into a format suitable for execution on theportal device 150 (e.g., Java bytecodes and data) the formattedpage/object may be stored locally on a cache 925 at the portal server110 (or other server maintained by the PO). Thus, the next time thecontent is requested, the conversion module 920 may simply read thepreviously-generated code from the local cache 925 (i.e., it will nolonger need to retrieve the content from remote locations to reconstructthe code).

[0071] Various caching techniques and algorithms may be implemented toensure that the cache 925 is storing Internet data efficiently (i.e.,resulting in an acceptable percentage of cache ‘hits’) and that the datais current. For example, the portal server 110 may cache the mostfrequently-requested Internet data (e.g., the Yahoo™ home page), and mayremove content from the cache based on a least-recently used cachingpolicy. In addition, to ensure that data stored in the cache is current,the portal server 110 may compare the version of the data stored in thecache 925 with the version of data stored at the remote Internet site130 when the data is requested. Similarly, the portal server 110 maystore data in the cache 925 for some predetermined period of time beforechecking the remote server 130 for a new version. Various other Internetcaching techniques may be employed while still complying with theunderlying principles of the invention (e.g., those defined in theInternet Caching Protocol (“ICP”) and/or the Cache Array RoutingProtocol (“CARP”)).

Data Preservation

[0072] As mentioned above, in one embodiment, when battery powerdecreases below a first threshold level, the portal device 150 willnotify the user and/or the portal server 110. In addition, when thepower decreases below a second threshold level (which may or may not bedifferent from the first threshold level), one embodiment of theinvention will preserve data stored in volatile memory on the portaldevice (e.g., scratchpad RAM 540 and/or external memory 550) by savingthe data on the portal server 110. For example, if the user is in themiddle of composing an email or an instant message, this informationwill automatically be transmitted and stored on the portal server 110.Various other types of user data may be automatically saved in thismanner while complying with the underlying principles of the invention(e.g., calendar data, address data, word processing data, portal deviceconfiguration data, . . . etc).

[0073] In one embodiment, the entire contents of the portal device's150's volatile memory will be saved on the portal server 110 when thesecond threshold level is reached (e.g., similar to the suspend-to-diskfeature available on many notebook computers). Alternatively, or inaddition, only user data associated with one or more applicationprograms is saved to the portal server 110 (e.g., only unrecoverabledata will be saved).

[0074] In one embodiment, once the second threshold level is reached,the user of the portal device 150 will be warned that any subsequentdata entered on the portal device is at risk of being lost (e.g., if thedevice 150 loses power completely). However, as long as some batterypower is available, the user of this embodiment will still be able tostore any subsequent data to the portal server 110 (e.g., by manuallyexecuting a “save” command).

[0075] Once the user installs a new battery on the portal device 150,the data may then be downloaded to the portal device 150 from the portalserver 110 as soon as the portal device 150 is restarted. If the entirecontents of the device's 150's volatile memory was stored, then thiswill simply involve restoring the memory. Alternatively, if specificapplication data was saved, then only the specific application data willbe restored.

[0076] Embodiments of the invention may include various steps as setforth above. The steps may be embodied in machine-executableinstructions. The instructions can be used to cause a general-purpose orspecial-purpose processor to perform certain steps. Alternatively, thesesteps may be performed by specific hardware components that containhardwired logic for performing the steps, or by any combination ofprogrammed computer components and custom hardware components.

[0077] Elements of the present invention may also be provided as amachine-readable medium for storing the machine-executable instructions.The machine-readable medium may include, but is not limited to, floppydiskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs,RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media orother type of media/machine-readable medium suitable for storingelectronic instructions. For example, the present invention may bedownloaded as a computer program which may be transferred from a remotecomputer (e.g., a server) to a requesting computer (e.g., a client) byway of data signals embodied in a carrier wave or other propagationmedium via a communication link (e.g., a modem or network connection).

[0078] Throughout the foregoing description, for the purposes ofexplanation, numerous specific details were set forth in order toprovide a thorough understanding of the invention. It will be apparent,however, to one skilled in the art that the invention may be practicedwithout some of these specific details. For example, while the systemdescribed above employs a single portal server 110, alternativeembodiments of the invention may include numerous different servers(e.g., database servers, web servers, etc), and/or mirrored serversdistributed across a network. Moreover, while the embodiments describedabove focus on a portal device which executes interpreted code (e.g.,Java bytecodes), the principles of the invention may also be implementedon devices which execute non-interpreted code. Accordingly, the scopeand spirit of the invention should be judged in terms of the claimswhich follow.

What is claimed is:
 1. A method for preserving data on a portableapparatus having a limited power source comprising: detecting that poweravailable in said power source has reached a threshold value; and savingdata stored in volatile memory on said portable apparatus to a serverresponsive to said threshold value being reached.
 2. The method asclaimed in claim 1 further comprising: warning said user that anysubsequent data entry is at risk of being lost.
 3. The method as inclaim 1 further comprising: sending a battery to a user of portableapparatus when power available in said power source has reached a secondthreshold value.
 4. The method as in claim 3 wherein said secondthreshold value is less than said first threshold value.
 5. The methodas in claim 1 further comprising: restoring said data to said portableapparatus after said power supply rises above said threshold value. 6.The method as in claim 1 wherein saving further comprises: saving alldata stored in volatile memory to said server.
 7. The method as in claim1 wherein saving comprises: only saving unrecoverable data to saidserver.
 8. An apparatus comprising: power level detection logic todetect when power available in a power source has reached a thresholdvalue; and data preservation logic to save data stored in volatilememory on said portable apparatus to a server.
 9. The apparatus asclaimed in claim 8 further comprising: logic to warn said user that anysubsequent data entry is at risk of being lost.
 10. The method as inclaim 1 wherein said power further comprising: sending a battery to auser of portable apparatus when power available in said power source hasreached a second threshold value.
 11. The method as in claim 3 whereinsaid second threshold value is less than said first threshold value. 12.The method as in claim 1 further comprising: restoring said data to saidportable apparatus after said power supply rises above said thresholdvalue.
 13. The method as in claim 1 wherein saving further comprises:saving all data stored in volatile memory to said server.
 14. The methodas in claim 1 wherein saving comprises: only saving unrecoverable datato said server.
 15. A portable data processing apparatus comprising:power detection logic to detect that power available in a power sourcehas reached a threshold value; and saving data stored in volatile memoryon said portable data processing apparatus to a server in response tosaid power detection logic detecting that power available in said powersource has reached said threshold value.
 16. The apparatus as claimed inclaim 15 further comprising: warning logic to warn said user that anysubsequent data entry is at risk of being lost.
 17. The apparatus as inclaim 15 further comprising: data restoration logic to restore said datato said portable apparatus after said power supply rises above saidthreshold value.
 18. An article of manufacture including program codewhich, when executed by a machine, cause said machine to perform theoperations of: detecting that power available in a power source of saidmachine has reached a threshold value; and saving data stored involatile memory on said machine to a server responsive to said thresholdvalue being reached.
 20. The article of manufacture as claimed in claim18 including additional program to cause said machine to perform theoperations of: warning said user that any subsequent data entry is atrisk of being lost.
 21. The article of manufacture as claimed in claim18 including additional program to cause said machine to perform theoperations of: sending a battery to a user of portable apparatus whenpower available in said power source has reached a second thresholdvalue.